# 使用OpenJDK 17作为基础镜像
FROM openjdk:17-jdk-alpine

# 设置工作目录
WORKDIR /app

# 设置时区
RUN apk add --no-cache tzdata && \
  ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
  echo "Asia/Shanghai" > /etc/timezone

# 安装curl用于健康检查
RUN apk add --no-cache curl

# 创建日志目录
RUN mkdir -p /app/logs

# 复制Maven配置文件
COPY pom.xml .
COPY retail-admin/pom.xml retail-admin/
COPY retail-common/pom.xml retail-common/
COPY retail-modules/pom.xml retail-modules/
COPY retail-modules/user/pom.xml retail-modules/user/
COPY retail-modules/product/pom.xml retail-modules/product/

# 复制源代码
COPY retail-admin/src retail-admin/src
COPY retail-common/src retail-common/src
COPY retail-modules/user/src retail-modules/user/src
COPY retail-modules/product/src retail-modules/product/src

# 构建应用
RUN apk add --no-cache maven && \
  mvn clean package -DskipTests && \
  cp retail-admin/target/retail-admin-1.0.0.jar app.jar && \
  rm -rf /root/.m2 && \
  apk del maven

# 暴露端口
EXPOSE 8080

# 设置JVM参数
ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"

# 启动应用
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]